package com.hsh.tools.convert;

import com.hsh.entity.DbMenu;
import com.hsh.vo.result.convert.DbMenuListVO;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

public class MenuConverter {
    /**
     * 菜单List
     */
    public static List<DbMenuListVO> converterToMenuNodeVO(List<DbMenu> menus) {
        //先过滤出用户的菜单
        List<DbMenuListVO> menuNodeVOS = new ArrayList<>();
        if (!CollectionUtils.isEmpty(menus)) {
            for (DbMenu menu : menus) {
                if (menu.getType() == 0) {
                    DbMenuListVO menuNodeVO = new DbMenuListVO();
                    BeanUtils.copyProperties(menu, menuNodeVO);
                    menuNodeVO.setDisabled(menu.getDisabled());
                    menuNodeVOS.add(menuNodeVO);
                }
            }
        }
        return menuNodeVOS;
    }


    /**
     * 菜单和按钮List
     */
    public static List<DbMenuListVO> converterToALLMenuNodeVO(List<DbMenu> menus) {
        //先过滤出用户的菜单
        List<DbMenuListVO> menuNodeVOS = new ArrayList<>();
        if (!CollectionUtils.isEmpty(menus)) {
            for (DbMenu menu : menus) {
                DbMenuListVO menuNodeVO = new DbMenuListVO();
                BeanUtils.copyProperties(menu, menuNodeVO);
                menuNodeVO.setDisabled(menu.getDisabled());//禁用状态
                menuNodeVOS.add(menuNodeVO);
            }
        }
        return menuNodeVOS;
    }

    /**
     * 转成menuVO(菜单和按钮）
     *
     * @param menu
     * @return
     */
    public static DbMenuListVO converterToMenuVO(DbMenu menu) {
        DbMenuListVO menuVO = new DbMenuListVO();
        if (menu != null) {
            BeanUtils.copyProperties(menu, menuVO);
            menuVO.setDisabled(menu.getDisabled());//禁用状态
        }
        return menuVO;
    }

}
